// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Pin Up Казино – Официальный сайт Пин Ап вход на зеркало – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Pin Up Казино – Официальный сайт Пин Ап вход на зеркало

В современном мире азартных игр и онлайн-казино, где каждый день появляется новое игровое учреждение, Pin Up Казино остается одним из самых популярных и надежных игорных операторов. Компания была основана в 2016 году и с тех пор успешно развивается, привлекая игроков из всего мира.

Pin Up Казино – это официальный сайт, который предлагает игрокам широкий спектр азартных игр, включая слоты, карточные игры, рулетку, покер и другие. Вся игра происходит на официальном сайте, который обеспечивает безопасность и конфиденциальность игроков.

Один из ключевых преимуществ Pin Up Казино – это его официальный статус, подтвержденный лицензией, выданными регуляторами игорного бизнеса. Это означает, что игроки могут быть уверены в том, что играют в официальном казино, где их деньги и личные данные защищены.

Pin Up Казино – это не только игровое учреждение, но и сообщество, где игроки могут общаться, делиться опытом и получать советы от опытных игроков. Вся информация на официальном сайте доступна на русском языке, что делает его доступным для игроков из России и других стран, где русский язык является официальным.

Если вы ищете надежное и безопасное место для игры, то Pin Up Казино – это ваш выбор. Вход на официальный сайт Pin Up Казино – это первый шаг к приключению и возможностям, которые предлагает это казино.

Вход на зеркало Pin Up Казино доступен по адресу [www.pin-up.com](http://www.pin-up.com).

Пинап Казино – Официальный сайт: Как начать играть

Зарегистрация на официальном сайте Пинап Казино

Для регистрации на официальном сайте Пинап Казино вам нужно выполнить несколько простых шагов. Вам нужно выбрать тип аккаунта (игрок или дилер), ввести свои личные данные, выбрать валюту и подтвердить регистрацию. После регистрации вы получите доступ к игровому кабинету, где можно выбрать игру, которая вам понравилась.

Важно! Пинап Казино предлагает безопасную и надежную систему защиты данных, поэтому вы можете быть уверены в безопасности своих личных данных. Вам не нужно беспокоиться о безопасности своих данных!

Pin Up Казино – Официальный сайт Пин Ап

Pin Up Казино – это популярный онлайн-казино, которое предлагает игрокам широкий спектр развлечений и игр. Официальный сайт Pin Up Казино – это место, где вы можете найти все, что вам нужно для игры и развлечений.

Описание Pin Up Казино

Pin Up Казино – это онлайн-казино, которое было основано в 2016 году. Компания имеет лицензию на проведение игорного бизнеса, выдана в Курской области. Pin Up Казино предлагает игрокам более 3 000 игр, включая слоты, карточные игры, рулетку, покер и другие.

Тип игры
Количество

Слоты 1500 Карточные игры 200 Рулетка 50 Покер 100

Преимущества Pin Up Казино

Pin Up Казино предлагает игрокам несколько преимуществ, включая:

Бонусы и акции

Возможность играть pin-up вход на деньги и в режиме demo

Многообразие игр и развлечений

24/7 поддержка

Безопасность и конфиденциальность

Pin Up Казино – это лучший выбор для игроков, которые ищут развлечения и игры онлайн. Официальный сайт Pin Up Казино – это место, где вы можете найти все, что вам нужно для игры и развлечений.

Описание и функции официального сайта Pin Up Казино

Pin Up Казино – это официальный онлайн-казино, которое предлагает игрокам широкий спектр развлекательных и игровых возможностей. Официальный сайт Pin Up Казино – это место, где вы можете найти все, что вам нужно для игры и развлечений.

Основные функции официального сайта

  • Большой выбор игр: на официальном сайте Pin Up Казино представлены игры от ведущих разработчиков, включая NetEnt, Microgaming, Play’n GO и других.
  • Легкая регистрация: процесс регистрации на сайте занимает считанные минуты, и вы можете начать играть сразу.
  • Бонусы и акции: на официальном сайте Pin Up Казино регулярно проводятся акции и бонусы, которые помогут вам начать играть с преимуществом.
  • Мобильная версия: сайт доступен на мобильных устройствах, что позволяет играть в любое время и где угодно.
  • Безопасность: официальный сайт Pin Up Казино обеспечивает безопасность транзакций и защищает вашу личную информацию.
  • Огромный выбор игр: на официальном сайте Pin Up Казино представлены игры для любителей классических слотов, а также для поклонников живых игр, таких как рулетка, покер и бинго.
  • Многоязычность: сайт доступен на нескольких языках, включая русский, что облегчает игрокам из разных стран.
  • 24/7 поддержка: на официальном сайте Pin Up Казино работает круглосуточная поддержка, которая поможет вам в любое время.
  • Преимущества официального сайта

    • Высокие ставки: на официальном сайте Pin Up Казино можно ставить высокие суммы, что обеспечивает большие выигрыши.
    • Большой выбор payment-опций: на официальном сайте представлены различные payment-опции, включая Visa, Mastercard, Skrill, Neteller и другие.
    • Легкая оплата: процесс оплаты на официальном сайте Pin Up Казино прост и быстр.

    В целом, официальный сайт Pin Up Казино – это лучшее место для игроков, которые ищут развлечения и игры. Сайт обеспечивает безопасность, комфорт и доступность, а также регулярно проводит акции и бонусы, чтобы помочь вам начать играть с преимуществом.

    Как зарегистрироваться и начать играть на официальном сайте Pin Up Казино

    Для начала играть на официальном сайте Pin Up Казино, вам нужно зарегистрироваться. Это простой и быстрый процесс, который займет не более 5 минут. Вам нужно выполнить следующие шаги:

    Шаг 1: Перейдите на официальный сайт Pin Up Казино

    Вам нужно открыть браузер и ввести в адресную строку адрес официального сайта Pin Up Казино. Вы можете найти его в поисковике или воспользоваться ссылкой на нашем сайте.

    Шаг 2: Нажмите на кнопку “Зарегистрироваться”

    На странице входа на сайт Pin Up Казино вы увидите кнопку “Зарегистрироваться”. Нажмите на нее, чтобы начать процесс регистрации.

    Шаг 3: Введите информацию о себе

    В форме регистрации вам нужно ввести некоторые сведения о себе, такие как имя, фамилия, адрес электронной почты и пароль. Введите корректные данные, чтобы обеспечить безопасность вашего аккаунта.

    Шаг 4: Подтвердите регистрацию

    После заполнения формы регистрации вам будет отправлено письмо с подтверждением регистрации. Откройте это письмо и нажмите на ссылку, чтобы подтвердить регистрацию.

    Шаг 5: Начните играть

    После подтверждения регистрации вы можете начать играть на официальном сайте Pin Up Казино. Вы можете выбрать любую игру, которая вам понравилась, и начать играть. Удачи!

    Design and Develop by Ovatheme